# $Id$
# Makefile for teTeX distribution, also used for TeX Live.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

srcdir = @srcdir@
VPATH  = $(srcdir)

SHELL = /bin/sh

prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
scriptdir = $(bindir)
texmf = @texmfmain@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@

NCURSESDIR=libs/ncurses
ZLIBDIR=libs/zlib
LIBPNGDIR=libs/libpng
LIBT1DIR=libs/t1lib
LIBTYPE1DIR=$(LIBT1DIR)/../type1
LIBXPDFDIR=libs/xpdf
GDDIR=libs/gd
FREETYPEDIR=libs/freetype
FREETYPE2DIR=libs/freetype2
ICUDIR=libs/icu-xetex
TECKITDIR=libs/teckit
LIBOBSDCOMPATDIR=libs/obsdcompat

# Subdirectories that have makefiles
ESUBDIRS = @ESUBDIRS@ texk
LIBSDIRS = @LIBSDIRS@

# Subdirectories for which we want to run make (un)install; these are
# different for xdvik standalone distribution where we don't want to
# install kpathsea and friends by default.
INSTDIRS = @INSTDIRS@

default: all
install: all 
	for dir in $(INSTDIRS); do \
	   echo making $@ in $$dir; \
	     (cd $$dir && PATH=$(scriptdir):$(bindir):$(PATH) \
                $(MAKE) $@) || exit 1; \
	done
	if test -d $(texmf) && test -f $(srcdir)/release-tetex-src.txt; then \
	  $(INSTALL_DATA) $(srcdir)/release-tetex-src.txt $(texmf); \
	fi
@FMU@
@FMU@install-extra:
# temporary fix for missing links
	- if test -f texk/web2c/omegafonts/omfonts; then \
	    cd texk/web2c/omegafonts && $(MAKE) install-links; \
	else :; fi
	$(srcdir)/selfautofix "$(bindir)" "$(texmf)/web2c"
	- if test -f $(scriptdir)/mktexlsr; then \
	  TEXMFMAIN=$(texmf) PATH=$(scriptdir):$(bindir):$(PATH) \
	    $(scriptdir)/mktexlsr; \
	else :; fi
	- if test -f $(scriptdir)/fmtutil-sys; then \
	  TEXMFMAIN=$(texmf) PATH=$(scriptdir):$(bindir):$(PATH) \
	    $(scriptdir)/fmtutil-sys --all; \
	else :; fi
	- if test -f $(scriptdir)/texlinks; then \
	  TEXMFMAIN=$(texmf) PATH=$(scriptdir):$(bindir):$(PATH) \
	    $(scriptdir)/texlinks; \
	else :; fi
	- if test -f $(scriptdir)/updmap-sys \
	  && TEXMFMAIN=$(texmf) PATH=$(scriptdir):$(bindir):$(PATH) \
	       $(scriptdir)/kpsewhich --format='web2c files' updmap.cfg >/dev/null; \
	then \
	  TEXMFMAIN=$(texmf) PATH=$(scriptdir):$(bindir):$(PATH) \
	    $(scriptdir)/updmap-sys; \
	else :; fi

install-exec:
	for dir in $(INSTDIRS); do \
	   echo making $@ in $$dir; \
	   (cd $$dir && PATH=$(scriptdir):$(bindir):$(PATH) \
              $(MAKE) $@) || exit 1; \
	done
@FMU@
@FMU@install-exec-extra:
# temporary fix for missing links
	- if test -f texk/web2c/omegafonts/omfonts; then \
	    cd texk/web2c/omegafonts && $(MAKE) install-links; \
	else :; fi
	- if test -f $(scriptdir)/texlinks; then \
	  TEXMFMAIN=$(texmf) PATH=$(scriptdir):$(bindir):$(PATH) \
	    $(scriptdir)/texlinks; \
	else :; fi

strip: install 
	cd $(bindir) && strip * >/dev/null 2>&1 || true

check:
	cd texk; TEXMF='{$(texmf),$(texmf)-dist}' TEXMFCNF=$(texmf)/web2c $(MAKE) $@

uninstall:
	for dir in $(INSTDIRS); do \
	  echo making $@ in $$dir; \
	  (cd $$dir && $(MAKE) $@) || exit 1; \
	done

Makefile: Makefile.in config.status
	$(SHELL) ./config.status

all: @LIBSDEP@
all clean mostlyclean:
	esubdirs="$(LIBSDIRS) $(ESUBDIRS)"; \
	  for dir in $$esubdirs; do \
	    echo making $@ in $$dir; \
	    (if test -f $$dir/Makefile; then cd $$dir && $(MAKE) $@; else true; fi) || exit 1; \
	  done

distclean: clean
	cleandirs="$(LIBSDIRS) $(ESUBDIRS)"; \
	  for dir in $$cleandirs; do \
	    echo making $@ in $$dir; \
	    (if test -f $$dir/Makefile; then cd $$dir && $(MAKE) $@; else true; fi) || exit 1; \
	  done
	rm -f Makefile *.status *.cache *.log dialogconfig.h TAGS
	rm -f libs/klibtool.config libs/config.log libs/config.status libs/config.cache libs/kpse_empty
	rm -f utils/texinfo/info/funs.h utils/texinfo/info/doc.c utils/texinfo/info/key.c

tags TAGS:
	rm -f TAGS
	find . -name '*.[ch]' -print | xargs etags --append -o TAGS


realclean: distclean
world: install strip
pdftex pdfetex:
	cd texk/web2c; $(MAKE) $@
	test -f texk/web2c/pdftex && ls -l texk/web2c/pdftex
	test -f texk/web2c/pdfetex && ls -l texk/web2c/pdfetex

$(NCURSESDIR)/lib/libncurses.a:
	cd $(NCURSESDIR); $(MAKE)
$(ZLIBDIR)/libz.a:
	cd $(ZLIBDIR); $(MAKE) libz.a
$(LIBPNGDIR)/libpng.a:
	cd $(LIBPNGDIR); $(MAKE) libpng.a
$(LIBT1DIR)/libt1.a:
	cd $(LIBT1DIR); $(MAKE) libt1.a
$(LIBTYPE1DIR)/libtype1.a:
	cd $(LIBTYPE1DIR); $(MAKE) libtype1.a
$(LIBXPDFDIR)/xpdf/libxpdf.a:
	cd $(LIBXPDFDIR)/xpdf; $(MAKE) libxpdf.a
$(LIBXPDFDIR)/goo/libGoo.a:
	cd $(LIBXPDFDIR)/goo; $(MAKE) libGoo.a
$(LIBXPDFDIR)/fofi/libfofi.a:
	cd $(LIBXPDFDIR)/fofi; $(MAKE) libfofi.a
$(GDDIR)/libgd.a:
	cd $(GDDIR); $(MAKE) libgd.a
$(FREETYPEDIR)/lib/.libs/libttf.a:
	cd $(FREETYPEDIR); $(MAKE)
$(FREETYPE2DIR)/.libs/libfreetype.a:
	cd $(FREETYPE2DIR); $(MAKE)
$(ICUDIR)/lib/libsicuuc.a $(ICUDIR)/lib/libsicule.a $(ICUDIR)/lib/libsicudata.a:
	cd $(ICUDIR); $(MAKE)
$(TECKITDIR)/lib/.libs/libTECkit.a:
	cd $(TECKITDIR); $(MAKE)
$(LIBOBSDCOMPATDIR)/libopenbsd-compat.a:
	cd $(LIBOBSDCOMPATDIR); $(MAKE) libopenbsd-compat.a

# Prevent GNU make v3 from overflowing arg limit on SysV.
.NOEXPORT:
